A data storage device such as a magnetic, optical, or magneto-optical drive is typically connected to a host computer or other device through one or more communication paths between the host computer and the data storage device. A microprocessor in the data storages device, by executing instructions stored in memory, generally provides control for the device including control of the communications.
Data is transferred between the host computer and the data storage device by way of an interface, which typically utilizes one of a variety of common protocols for communicating with the host computer. Data to be written to the disc drive is thus passed from the host computer to the interface and then to a read/write channel, which encodes and serializes the data and provides the requisite write current signals to the heads. To retrieve data that has been previously stored in the data storage device, read signals are generated by the heads and provided to the read/write channel, which performs decoding and error detection and correction operations and outputs the retrieved data to the interface for subsequent transfer to the host computer or other device.
Currently, there are several popular interfaces available for use in data storage devices. For example, well known interfaces include Advanced Technology Attachment (ATA), Small Computer System Interface (SCSI), serial versions of both ATA and SCSI, Fiber Channel, Fire Wire, Universal Serial Bus (USB), and others. Each of these interface types cause a data storage device to read and write data on a storage medium of the data storage device in response to commands from the host. However, these interfaces all represent a different protocol and require a slightly different set of commands and operation types. In order to support these different interfaces, a manufacturer of data storage devices must develop interface hardware and software to support each protocol and command set. Therefore, the fact that many different interfaces exist adds to the complexities of developing software and hardware for data storage devices.
Accordingly there is a need for a generic host interface that allows many possible interface types to be used or interchanged with few hardware or software changes. The present invention provides a solution to this and other problems, and offers other advantages over the prior art.